load("@rules_java//java:defs.bzl", "java_library")

package(
    default_applicable_licenses = ["//:license"],
    default_visibility = ["//visibility:public"],
)

java_library(
    name = "checker",
    exports = ["//checker/src/main/java/dev/cel/checker"],
)

java_library(
    name = "checker_builder",
    exports = ["//checker/src/main/java/dev/cel/checker:checker_builder"],
)

java_library(
    name = "proto_type_mask",
    exports = ["//checker/src/main/java/dev/cel/checker:proto_type_mask"],
)

java_library(
    name = "type_provider_legacy",
    deprecation = "Please use CelTypeProvider instead in //common/types:type_providers",
    exports = ["//checker/src/main/java/dev/cel/checker:type_provider_legacy"],
)

java_library(
    name = "type_provider_legacy_impl",
    visibility = ["//:internal"],
    exports = ["//checker/src/main/java/dev/cel/checker:type_provider_legacy_impl"],
)

java_library(
    name = "cel_ident_decl",
    exports = ["//checker/src/main/java/dev/cel/checker:cel_ident_decl"],
)

java_library(
    name = "checker_legacy_environment",
    deprecation = "See go/cel-java-migration-guide. Please use CEL-Java Fluent APIs //compiler instead",
    exports = ["//checker/src/main/java/dev/cel/checker:checker_legacy_environment"],
)

java_library(
    name = "type_inferencer",
    visibility = ["//:internal"],  # Planned for use in a new type-checker.
    exports = ["//checker/src/main/java/dev/cel/checker:type_inferencer"],
)

java_library(
    name = "proto_expr_visitor",
    exports = ["//checker/src/main/java/dev/cel/checker:proto_expr_visitor"],
)

java_library(
    name = "standard_decl",
    exports = ["//checker/src/main/java/dev/cel/checker:standard_decl"],
)
